Conditional Formatting

Java Technologies - অ্যাপাচি পিওআই (Apache POI) - ফরম্যাটিং এবং Cell Style
208

Conditional Formatting হলো Excel ফাইলে এমন একটি বৈশিষ্ট্য, যার মাধ্যমে আপনি নির্দিষ্ট শর্তের উপর ভিত্তি করে cell গুলোর রঙ, ফন্ট, বা অন্যান্য ফরম্যাট পরিবর্তন করতে পারেন। Apache POI ব্যবহার করে, আপনি প্রোগ্রাম্যাটিকভাবে Excel ফাইলে conditional formatting যোগ করতে পারেন।


Conditional Formatting এর প্রয়োগ

Apache POI তে conditional formatting যোগ করতে হলে আপনাকে কয়েকটি ধাপ অনুসরণ করতে হবে। এখানে মূলত ConditionalFormattingRule তৈরি করতে হয়, যা নির্দিষ্ট criteria এর উপর ভিত্তি করে cell style পরিবর্তন করবে।


1. Conditional Formatting Rule তৈরি করা

প্রথমে, Excel সেলে একটি শর্ত তৈরি করতে হবে, যা নির্দিষ্ট ডেটার উপর ভিত্তি করে ফরম্যাট পরিবর্তন করবে। এখানে একটি উদাহরণ দেওয়া হল, যেখানে cell গুলোর মান 50 এর বেশি হলে সেটি সবুজ রঙে থাকবে এবং 50 এর কম হলে লাল রঙে থাকবে।

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.ss.util.AreaReference;
import org.apache.poi.ss.util.CellReference;
import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelConditionalFormatting {
    public static void main(String[] args) throws IOException {
        // নতুন একটি Workbook তৈরি করা
        Workbook workbook = new XSSFWorkbook();
        
        // Workbook-এ নতুন Sheet যোগ করা
        Sheet sheet = workbook.createSheet("Sheet1");
        
        // কিছু ডেটা ইনসার্ট করা (1st column - values)
        for (int i = 0; i < 10; i++) {
            Row row = sheet.createRow(i);
            row.createCell(0).setCellValue(i * 10);  // 0, 10, 20, ..., 90
        }

        // Conditional Formatting যোগ করা
        // Conditional formatting rule তৈরি করা
        SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();
        
        // একটি নতুন Rule তৈরি করা, যেখানে 50 এর বেশি হলে সবুজ এবং কম হলে লাল হবে
        ConditionalFormattingRule rule = sheetCF.createConditionalFormattingRule(ComparisonOperator.GT, "50");

        // শর্তের জন্য সেল স্টাইল তৈরি করা
        Font font = workbook.createFont();
        font.setColor(IndexedColors.RED.getIndex());
        CellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setFont(font);

        // Rule এর স্টাইল সেট করা
        rule.setCellStyle(cellStyle);
        
        // শর্তটি নির্ধারণ করা
        CellRangeAddress[] regions = {CellRangeAddress.valueOf("A1:A10")};  // Range: A1 থেকে A10

        // Conditional formatting শর্ত প্রয়োগ করা
        sheetCF.addConditionalFormatting(regions, rule);

        // Excel ফাইল সংরক্ষণ করা
        try (FileOutputStream fileOut = new FileOutputStream("conditional_formatting_example.xlsx")) {
            workbook.write(fileOut);
        }

        // Workbook বন্ধ করা
        workbook.close();
    }
}

এখানে, আমরা প্রথমে একটি নতুন Excel ফাইল তৈরি করেছি এবং তার মধ্যে কিছু ডেটা (0, 10, 20, ... 90) ইনপুট করেছি। তারপরে, conditional formatting শর্ত হিসেবে 50 এর বেশি হলে রঙ সবুজ এবং 50 এর কম হলে লাল রঙের স্টাইল প্রয়োগ করা হয়েছে।


2. Conditional Formatting Rule এর ধরন

Apache POI তে বেশ কিছু ধরণের conditional formatting rules ব্যবহার করা যেতে পারে:

  • Comparison Operators: GT (Greater Than), LT (Less Than), EQ (Equal), GE (Greater Than or Equal), LE (Less Than or Equal), NE (Not Equal)
  • Formula-based rules: নির্দিষ্ট ফর্মুলার মাধ্যমে শর্ত তৈরি করা
  • Color Scales: সেল মানের ভিত্তিতে গ্রেডিয়েন্ট কালার স্কেল তৈরি করা
  • Data Bars: ডেটা গুলি সেল গুলোর ভিতরে বার চিত্র হিসেবে প্রদর্শন করা
  • Icon Sets: মানের ভিত্তিতে বিভিন্ন আইকন ব্যবহার করা (যেমন, সবুজ, হলুদ, লাল ত্রিভুজ বা রঙিন বল)

উদাহরণ: মানের ভিত্তিতে তিনটি রঙের শর্ত ব্যবহার করা

// ComparisonRule তৈরি করা (যেখানে মানের উপর ভিত্তি করে সেল রঙ পরিবর্তন হবে)
ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule(ComparisonOperator.LT, "30");
ConditionalFormattingRule rule2 = sheetCF.createConditionalFormattingRule(ComparisonOperator.BETWEEN, "30", "70");
ConditionalFormattingRule rule3 = sheetCF.createConditionalFormattingRule(ComparisonOperator.GT, "70");

// শর্তের জন্য সেল স্টাইল তৈরি করা
CellStyle style1 = workbook.createCellStyle();
style1.setFillForegroundColor(IndexedColors.RED.getIndex());
style1.setFillPattern(FillPatternType.SOLID_FOREGROUND);

CellStyle style2 = workbook.createCellStyle();
style2.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
style2.setFillPattern(FillPatternType.SOLID_FOREGROUND);

CellStyle style3 = workbook.createCellStyle();
style3.setFillForegroundColor(IndexedColors.GREEN.getIndex());
style3.setFillPattern(FillPatternType.SOLID_FOREGROUND);

// শর্তগুলি নির্ধারণ করা
rule1.setCellStyle(style1);
rule2.setCellStyle(style2);
rule3.setCellStyle(style3);

// শর্তটি নির্ধারণ করা
CellRangeAddress[] regions = {CellRangeAddress.valueOf("A1:A10")};  // Range: A1 থেকে A10

// Conditional formatting শর্ত প্রয়োগ করা
sheetCF.addConditionalFormatting(regions, rule1, rule2, rule3);

এখানে, cell গুলোর জন্য তিনটি শর্ত দেওয়া হয়েছে:

  • 30 এর কম হলে লাল রঙ
  • 30 থেকে 70 এর মধ্যে হলে হলুদ রঙ
  • 70 এর বেশি হলে সবুজ রঙ

3. Formula ভিত্তিক Conditional Formatting

কিছু ক্ষেত্রে, আপনি Formula ব্যবহার করে conditional formatting করতে পারেন। যেমন, একটি সেল যদি অন্য সেলের মানের চেয়ে বড় হয়, তাহলে তা একটি নির্দিষ্ট রঙে প্রদর্শিত হবে।

// Formula ভিত্তিক শর্ত তৈরি করা
ConditionalFormattingRule rule = sheetCF.createConditionalFormattingRule("=A1>50");

// শর্তের জন্য স্টাইল তৈরি করা
CellStyle style = workbook.createCellStyle();
style.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);

// স্টাইল সেট করা
rule.setCellStyle(style);

// শর্তটি নির্ধারণ করা
CellRangeAddress[] regions = {CellRangeAddress.valueOf("A1:A10")};  // Range: A1 থেকে A10

// Conditional formatting শর্ত প্রয়োগ করা
sheetCF.addConditionalFormatting(regions, rule);

এখানে, যদি A1 সেলের মান 50 এর বেশি হয়, তবে তার রঙ হলুদ হয়ে যাবে।


সারাংশ

Apache POI ব্যবহার করে আপনি সহজেই Excel ফাইলের মধ্যে conditional formatting যোগ করতে পারেন। এটি বিভিন্ন ধরনের শর্ত এবং স্টাইল ব্যবহার করে ডেটার ভিজ্যুয়াল প্রেজেন্টেশন উন্নত করতে সাহায্য করে। আপনি comparison operators, formulas, color scales, data bars, এবং icon sets ব্যবহার করে সেলগুলোর রঙ বা ফরম্যাট পরিবর্তন করতে পারেন, যা ডেটা বিশ্লেষণ এবং রিপোর্টিং প্রক্রিয়া অনেক সহজ করে তোলে।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...